package CONTABILIDAD_MODELO;
import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class CON_CENTRO_SUC_REG_DEP{
	private double ID;
	private double ID_CENTRO_COSTO;
	private double ID_REGIONAL;
	private double ID_DEPTO;
	private double ID_SUCURSAL;
	private double PORCENTAJE_REGIONAL;
	private double PORCENTAJE_SUCURSAL;
	private Conexion con = null;

	public CON_CENTRO_SUC_REG_DEP(){}

	public CON_CENTRO_SUC_REG_DEP(double ID_DEPTO,double ID_REGIONAL, double PORCENTAJE_REGIONAL,double ID_SUCURSAL,double PORCENTAJE_SUCURSAL,double ID_CENTRO_COSTO,double ID){
		this.PORCENTAJE_REGIONAL =PORCENTAJE_REGIONAL;
		this.PORCENTAJE_SUCURSAL =PORCENTAJE_SUCURSAL;
		this.ID_SUCURSAL =ID_SUCURSAL;
		this.ID_DEPTO =ID_DEPTO;
		this.ID_REGIONAL =ID_REGIONAL;
		this.ID_CENTRO_COSTO =ID_CENTRO_COSTO;
		this.ID =ID;
	}

	public boolean InsertarCCNormal(Double id_centro_costo){
		try{
			String consulta ="insert into BROKER.CON_CENTRO_SUC_REG_DEP(ID_DEPTO,ID_REGIONAL,PORCENTAJE_REGIONAL,ID_SUCURSAL,PORCENTAJE_SUCURSAL,ID_CENTRO_COSTO, ID) VALUES (null,null,null,null,null,"+id_centro_costo+",0)";
			con.EjecutarSentencia(consulta);
			return true;
		}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
        
	public boolean InsertarCCDepto(Double id_centro_costo, double id_depto){
		try{
			String consulta ="insert into BROKER.CON_CENTRO_SUC_REG_DEP(ID_DEPTO,ID_REGIONAL,PORCENTAJE_REGIONAL,ID_SUCURSAL,PORCENTAJE_SUCURSAL,ID_CENTRO_COSTO, ID) VALUES ("+id_depto+",null,null,null,null,"+id_centro_costo+",0)";
			con.EjecutarSentencia(consulta);
			return true;
		}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
        
	public boolean InsertarCCDepto(Double id_centro_costo, double id_depto, double idregional, double porcentaje_reg){
		try{
			String consulta ="insert into BROKER.CON_CENTRO_SUC_REG_DEP(ID_DEPTO,ID_REGIONAL,PORCENTAJE_REGIONAL,ID_SUCURSAL,PORCENTAJE_SUCURSAL,ID_CENTRO_COSTO, ID) VALUES ("+id_depto+","+idregional+","+porcentaje_reg+",null,null,"+id_centro_costo+",0)";
			con.EjecutarSentencia(consulta);
			return true;
		}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}

    public double getPORCENTAJE_SUCURSAL() {
        return PORCENTAJE_SUCURSAL;
    }

    public void setPORCENTAJE_SUCURSAL(double PORCENTAJE_SUCURSAL) {
        this.PORCENTAJE_SUCURSAL = PORCENTAJE_SUCURSAL;
    }
        
	public boolean InsertarCCDepto(Double id_centro_costo, double id_depto, double idregional, double porcentaje_reg, double id_sucursal, double porcentaje_suc){
		try{
			String consulta ="insert into BROKER.CON_CENTRO_SUC_REG_DEP(ID_DEPTO,ID_REGIONAL,PORCENTAJE_REGIONAL,ID_SUCURSAL,PORCENTAJE_SUCURSAL,ID_CENTRO_COSTO, ID) VALUES ("+id_depto+","+idregional+","+porcentaje_reg+","+id_sucursal+","+porcentaje_suc+","+id_centro_costo+",0)";
			con.EjecutarSentencia(consulta);
			return true;
		}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
        
	public boolean InsertarCCRegional(Double id_centro_costo, double idregional, double porcentaje_reg){
		try{
			String consulta ="insert into BROKER.CON_CENTRO_SUC_REG_DEP(ID_DEPTO,ID_REGIONAL,PORCENTAJE_REGIONAL,ID_SUCURSAL,PORCENTAJE_SUCURSAL,ID_CENTRO_COSTO, ID) VALUES (null,"+idregional+","+porcentaje_reg+",null,null,"+id_centro_costo+",-1)";
			con.EjecutarSentencia(consulta);
			return true;
		}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
        
	public boolean InsertarCCRegional(Double id_centro_costo, double idregional, double porcentaje_reg, double id_suc, double porcentaje_suc){
		try{
			String consulta ="insert into BROKER.CON_CENTRO_SUC_REG_DEP(ID_DEPTO,ID_REGIONAL,PORCENTAJE_REGIONAL,ID_SUCURSAL,PORCENTAJE_SUCURSAL,ID_CENTRO_COSTO, ID) VALUES (null,"+idregional+","+porcentaje_reg+","+id_suc+","+porcentaje_suc+","+id_centro_costo+",0)";
			con.EjecutarSentencia(consulta);
			return true;
		}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
        
	public boolean InsertarCCSucursal(Double id_centro_costo, double id_suc, double porcentaje_suc){
		try{
			String consulta ="insert into BROKER.CON_CENTRO_SUC_REG_DEP(ID_DEPTO,ID_REGIONAL,PORCENTAJE_REGIONAL,ID_SUCURSAL,PORCENTAJE_SUCURSAL,ID_CENTRO_COSTO, ID) VALUES (null,null,null,"+id_suc+","+porcentaje_suc+","+id_centro_costo+",0)";
			con.EjecutarSentencia(consulta);
			return true;
		}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
        

	public boolean EliminarTodoElCCd(double idcc){
		try{
			String consulta = "delete from BROKER.CON_CENTRO_SUC_REG_DEP where ID = "+idcc;
			con.EjecutarSentencia(consulta);
			return true;
			}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
	public boolean EliminarXCC(double idcc){
		try{
			String consulta = "delete from BROKER.CON_CENTRO_SUC_REG_DEP where ID_CENTRO_COSTO = "+idcc;
			con.EjecutarSentencia(consulta);
			return true;
			}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
        
	public boolean EliminarTodoUnDepto(double idcc, double id_depto){
		try{
			String consulta = "delete from BROKER.CON_CENTRO_SUC_REG_DEP where ID = "+idcc+" and ID_DEPTO = "+id_depto;
			con.EjecutarSentencia(consulta);
			return true;
			}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
	public boolean EliminarRegional_de_un_depto(double idcc, double id_depto, double id_regional){
		try{
			String consulta = "delete from BROKER.CON_CENTRO_SUC_REG_DEP where ID = "+idcc+" and ID_DEPTO = "+id_depto+" and ID_REGIONAL = "+id_regional;
			con.EjecutarSentencia(consulta);
			return true;
			}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
        
	public boolean Eliminaruna_sucursal_de_una_Regional_de_un_depto(double idcc, double id_depto, double id_regional, double id_sucursal){
		try{
			String consulta = "delete from BROKER.CON_CENTRO_SUC_REG_DEP where ID = "+idcc+" and ID_DEPTO = "+id_depto+" and ID_REGIONAL = "+id_regional+" and ID_SUCURSAL ="+id_sucursal;
			con.EjecutarSentencia(consulta);
			return true;
			}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}

        public boolean EliminarTodaUnaRegional(double idcc, double id_regional){
		try{
			String consulta = "delete from BROKER.CON_CENTRO_SUC_REG_DEP where ID = "+idcc+" and ID_REGIONAL = "+id_regional;
			con.EjecutarSentencia(consulta);
			return true;
			}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
        public boolean Eliminar_sucursal_por_Regional(double idcc, double id_regional, double id_sucursal){
		try{
			String consulta = "delete from BROKER.CON_CENTRO_SUC_REG_DEP where ID = "+idcc+" and ID_REGIONAL = "+id_regional+" and ID_SUCURSAL="+id_sucursal;
			con.EjecutarSentencia(consulta);
			return true;
			}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
        public boolean Eliminar_Sucursal(double idcc, double id_sucursal){
		try{
			String consulta = "delete from BROKER.CON_CENTRO_SUC_REG_DEP where ID = "+idcc+"  and ID_SUCURSAL="+id_sucursal;
			con.EjecutarSentencia(consulta);
			return true;
			}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
        
        
	public List<CON_CENTRO_SUC_REG_DEP> BuscarXid(double id){
		try{
                    String consulta = "select * from BROKER.CON_CENTRO_SUC_REG_DEP where ID_CENTRO_COSTO = "+id;
                    ResultSet rs = con.EjecutarConsulta(consulta);
                    return Cargar(rs);
                }
		catch(Exception e){
                    e.printStackTrace();}
                    return null;
	}
	public CON_CENTRO_SUC_REG_DEP BuscarXidCC(double id){
		try{
                    String consulta = "select * from BROKER.CON_CENTRO_SUC_REG_DEP where ID_CENTRO_COSTO = "+id;
                    ResultSet rs = con.EjecutarConsulta(consulta);
                    return Cargar(rs).get(0);
                }
		catch(Exception e){
                    e.printStackTrace();}
                    return null;
	}
        
	public List<CON_CENTRO_SUC_REG_DEP> BuscarCCxdepto(double id_depto){
		try{
                    String consulta = "select * from BROKER.CON_CENTRO_SUC_REG_DEP where ID_DEPTO = "+id_depto;
                    ResultSet rs = con.EjecutarConsulta(consulta);
                    return Cargar(rs);
                }
		catch(Exception e){
			e.printStackTrace();}
			return null;
	}
	public List<CON_CENTRO_SUC_REG_DEP> BuscarCCxdepto(double id_depto, double id_regional){
		try{
                    String consulta = "select * from BROKER.CON_CENTRO_SUC_REG_DEP where ID_DEPTO = "+id_depto+" and ID_REGIONAL = "+id_regional;
                    ResultSet rs = con.EjecutarConsulta(consulta);
                    return Cargar(rs);
                }
		catch(Exception e){
			e.printStackTrace();}
			return null;
	}
	public List<CON_CENTRO_SUC_REG_DEP> BuscarCCxdepto(double id_depto, double id_regional, double id_suc){
		try{
                    String consulta = "select * from BROKER.CON_CENTRO_SUC_REG_DEP where ID_DEPTO = "+id_depto+" and ID_REGIONAL = "+id_regional+" and ID_SUCURSAL = "+id_suc;
                    ResultSet rs = con.EjecutarConsulta(consulta);
                    return Cargar(rs);
                }
		catch(Exception e){
			e.printStackTrace();}
			return null;
	}
	
        public List<CON_CENTRO_SUC_REG_DEP> BuscarCCxRegional( double id_regional){
		try{
                    String consulta = "select * from BROKER.CON_CENTRO_SUC_REG_DEP where ID_REGIONAL = "+id_regional;
                    ResultSet rs = con.EjecutarConsulta(consulta);
                    return Cargar(rs);
                }
		catch(Exception e){
			e.printStackTrace();}
			return null;
	}
        
	public List<CON_CENTRO_SUC_REG_DEP> BuscarCCxRegional( double id_regional, double id_sucursal){
		try{
                    String consulta = "select * from BROKER.CON_CENTRO_SUC_REG_DEP where ID_REGIONAL = "+id_regional+" and ID_SUCURSAL = "+id_sucursal;
                    ResultSet rs = con.EjecutarConsulta(consulta);
                    return Cargar(rs);
                }
		catch(Exception e){
			e.printStackTrace();}
			return null;
	}
	public List<CON_CENTRO_SUC_REG_DEP> BuscarCCxSucursal(double id_sucursal){
		try{
                    String consulta = "select * from BROKER.CON_CENTRO_SUC_REG_DEP where ID_SUCURSAL = "+id_sucursal;
                    ResultSet rs = con.EjecutarConsulta(consulta);
                    return Cargar(rs);
                }
		catch(Exception e){
			e.printStackTrace();}
			return null;
	}
                                
	public List<CON_CENTRO_SUC_REG_DEP> Todos(){
		try{String consulta = "select * from BROKER.CON_CENTRO_SUC_REG_DEP";
			ResultSet rs = con.EjecutarConsulta(consulta);
			return Cargar(rs);}
		catch(Exception e){
			e.printStackTrace();}
			return null;
	}

	public List<CON_CENTRO_SUC_REG_DEP> Cargar(ResultSet rs){
		try{
			List<CON_CENTRO_SUC_REG_DEP> lista = new ArrayList<CON_CENTRO_SUC_REG_DEP>();
			while(rs.next()){
				CON_CENTRO_SUC_REG_DEP objeto = new CON_CENTRO_SUC_REG_DEP();

				objeto.setPORCENTAJE_REGIONAL(rs.getDouble("PORCENTAJE_REGIONAL"));
				objeto.setPORCENTAJE_SUCURSAL(rs.getDouble("PORCENTAJE_SUCURSAL"));
				objeto.setID_SUCURSAL(rs.getDouble("ID_SUCURSAL"));
				objeto.setID_DEPTO(rs.getDouble("ID_DEPTO"));
				objeto.setID_REGIONAL(rs.getDouble("ID_REGIONAL"));
				objeto.setID_CENTRO_COSTO(rs.getDouble("ID_CENTRO_COSTO"));
				objeto.setID(rs.getDouble("ID"));
				 objeto.setCon(con);
				lista.add(objeto);
			}
			return lista;
		}
		catch(SQLException ex){
			ex.printStackTrace();
		return null;}
	}

	public double getPORCENTAJE_REGIONAL(){
		return PORCENTAJE_REGIONAL;
	}
	public void setPORCENTAJE_REGIONAL(double PORCENTAJE_REGIONAL){
		this.PORCENTAJE_REGIONAL=PORCENTAJE_REGIONAL;
	}

	public double getID_SUCURSAL(){
		return ID_SUCURSAL;
	}
	public void setID_SUCURSAL(double ID_SUCURSAL){
		this.ID_SUCURSAL=ID_SUCURSAL;
	}

	public double getID_DEPTO(){
		return ID_DEPTO;
	}
	public void setID_DEPTO(double ID_DEPTO){
		this.ID_DEPTO=ID_DEPTO;
	}

	public double getID_REGIONAL(){
		return ID_REGIONAL;
	}
	public void setID_REGIONAL(double ID_REGIONAL){
		this.ID_REGIONAL=ID_REGIONAL;
	}

	public double getID_CENTRO_COSTO(){
		return ID_CENTRO_COSTO;
	}
	public void setID_CENTRO_COSTO(double ID_CENTRO_COSTO){
		this.ID_CENTRO_COSTO=ID_CENTRO_COSTO;
	}

	public double getID(){
		return ID;
	}
	public void setID(double ID){
		this.ID=ID;
	}

	public Conexion getCon() {
		return con;
	}
	public void setCon(Conexion con) {
		this.con = con;
	}

        
}
